Skip to content

Conversation

@ap--
Copy link
Contributor

@ap-- ap-- commented Jan 14, 2026

Closes #56369

This PR updates airflow's ObjectStoragePath class to be compatible with universal-pathlib >=0.3.8. It now uses upath.extensions.ProxyUPath as a base class, to avoid using the now deprecated _protocol_dispatch = False mechanism for class API extensions.

Also pathlib.Path added .copy, .copy_into, .move, and .move_into methods in 3.14, which means the ObjectStoragePath behavior for these is now different from standard pathlib, which defaults to recursive copies for directories and returns the target path.

Cheers,
Andreas ☺️

@kaxil kaxil requested a review from bolkedebruin January 15, 2026 16:33
@kaxil
Copy link
Member

kaxil commented Jan 15, 2026

cc @bolkedebruin

@potiuk potiuk added all versions If set, the CI build will be forced to use all versions of Python/K8S/DBs full tests needed We need to run full set of tests for this PR to merge labels Jan 29, 2026
@potiuk potiuk force-pushed the update-universal-pathlib branch from 779bf73 to 10dbeb3 Compare January 29, 2026 13:40
@potiuk
Copy link
Member

potiuk commented Jan 29, 2026

LGTM. Rebased and run it for all versions/full tests to see if all tests still pass.

@potiuk potiuk merged commit e166926 into apache:main Jan 29, 2026
228 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

all versions If set, the CI build will be forced to use all versions of Python/K8S/DBs area:task-sdk full tests needed We need to run full set of tests for this PR to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rework universal-pathlib in ObjectStoragePath

3 participants